Automatically determining language for speech recognition of spoken utterance received via an automated assistant interface

ABSTRACT

Determining a language for speech recognition of a spoken utterance received via an automated assistant interface for interacting with an automated assistant. Implementations can enable multilingual interaction with the automated assistant, without necessitating a user explicitly designate a language to be utilized for each interaction. Implementations determine a user profile that corresponds to audio data that captures a spoken utterance, and utilize language(s), and optionally corresponding probabilities, assigned to the user profile in determining a language for speech recognition of the spoken utterance. Some implementations select only a subset of languages, assigned to the user profile, to utilize in speech recognition of a given spoken utterance of the user. Some implementations perform speech recognition in each of multiple languages assigned to the user profile, and utilize criteria to select only one of the speech recognitions as appropriate for generating and providing content that is responsive to the spoken utterance.

BACKGROUND

Humans may engage in human-to-computer dialogs with interactive softwareapplications referred to herein as “automated assistants” (also referredto as “digital agents,” “chatbots,” “interactive personal assistants,”“intelligent personal assistants,” “assistant applications,”“conversational agents,” etc.). For example, humans (which when theyinteract with automated assistants may be referred to as “users”) mayprovide commands and/or requests to an automated assistant using spokennatural language input (i.e. utterances), which may in some cases beconverted into text and then processed, and/or by providing textual(e.g., typed) natural language input. An automated assistant responds toa request by providing responsive user interface output, which caninclude audible and/or visual user interface output.

As mentioned above, an automated assistant can convert audio data,corresponding to a spoken utterance of a user, into corresponding text(or other semantic representation). For example, audio data can begenerated based on detection of a spoken utterance of a user via one ormore microphones of a client device that includes an assistant interfacefor enabling the user to interact with an automated assistant. Theautomated assistant can include a speech recognition engine thatattempts to recognize various characteristics of the spoken utterancecaptured in the audio data, such as the sounds produced (e.g., phonemes)by the spoken utterance, the order of the produced sounds, rhythm ofspeech, intonation, etc. Further, the speech recognition engine canidentify text words or phrases represented by such characteristics. Thetext can then be further processed by the automated assistant (e.g.,using a natural language understanding (NLU) engine and/or a dialogstate engine) in determining responsive content for the spokenutterance. The speech recognition engine can be implemented by theclient device and/or by one or more automated assistant component(s)that are remote from, but in network communication with, the clientdevice.

However, many speech recognition engines are configured to recognizespeech in only a single language. For multilingual users and/orhouseholds, such single language speech recognition engines can beunsatisfactory, and can cause an automated assistant to fail and/orprovide erroneous output when a spoken utterance is received in anadditional language that is not the single language supported by thespeech recognition engines. This can render the automated assistantunusable and/or lead to excess usage of computational and/or networkresources. Excess usage of computational and/or network resources can bea result of a user needing to provide a further spoken utterance, thatis in the single language supported, when the automated assistant failsor provides erroneous output. Such further spoken utterance mustadditionally be processed by a corresponding client device and/or remoteautomated assistant component(s), thereby causing additional usage ofvarious resources.

Other speech recognition engines may be configured to recognize speechin multiple languages, but require a user to explicitly designate whichof the multiple languages should be utilized in speech recognition at agiven time. For example, some of the other speech recognition enginesmay require a user to manually designate a default language to beutilized in speech recognition of all spoken utterances received at aparticular client device. To change the default language to anotherlanguage, the user can be required to interact with a graphical and/oraudible interface to explicitly alter the default language. Suchinteraction can lead to excess usage of computational and/or networkresources in the rendering of the interface, the processing of inputs ofthe user provided via the interface, etc. Further, it may often be thecase that a user forgets to change the default language prior toproviding a spoken utterance that is not currently the default language.This can render the automated assistant unusable and/or lead to excessusage of computational and/or network resources as described above.

SUMMARY

Implementations described herein relate to systems, methods, andapparatus for automatically determining a language for speechrecognition of a spoken utterance received via an automated assistantinterface. In some implementations, speech recognition of a spokenutterance using a given language can include processing audio data,which captures the spoken utterance, using one or more speechrecognition models for the given language in order to generate text thatcorresponds to the spoken utterance, and that is in the given language.As described herein, multiple speech recognition models can beaccessible for speech recognition, and each of the speech recognitionmodels can be configured for a corresponding language of multiplelanguages. For example, a first speech recognition model can beconfigured for generating English text based on processing audio dataincluding English spoken utterances, a second speech recognition modelcan be configured for generating French text based on processing audiodata including French spoken utterances, a third speech recognitionmodel can be configured for generating Spanish text based on processingaudio data including Spanish spoken utterances, etc.

Some implementations described herein can utilize various techniques toselect only a subset of languages to utilize in speech recognition of agiven spoken utterance of a given user. For example, the given user canhave a user profile with multiple candidate languages assigned to theuser profile. The multiple candidate languages can be manually assignedto the user profile by the user and/or automatically assigned based onpast usage of the candidate language(s) by the user across one or moreplatforms. As described in more detail below, selecting only the subsetof languages can be based on, for example, probability metrics assignedto the multiple candidate languages for the user profile, which can bebased on past usage of the multiple candidate languages for the userprofile, and which can each correspond to one or more contextualparameters (e.g., each based on past usage of a corresponding languagefor the user profile, given the contextual parameter(s)).

As one particular example, a single particular language, of multiplelanguages assigned to the user profile, can have an assigned probabilitymetric, for one or more current contextual parameters (e.g., a clientdevice via which the given spoken utterance is detected, a time of day,and/or a day of the week), wherein the probability metric indicates avery high likelihood of the single particular language being spoken bythe given user. Based on the assigned probability metric, the singleparticular language can be selected, and speech recognition can beperformed using only speech recognition model(s) for the singlelanguage. Performing the speech recognition can result in correspondingtext, in the single language, that can then be further processed byadditional component(s) of an automated assistant in generating contentthat is responsive to the given spoken utterance. The content that isresponsive can then be provided for rendering at the client device forpresentation to the user. The content that is responsive can optionallybe in the same single language, or provided to cause rendering in thesame single language.

As another particular example, two particular languages, of three ormore candidate languages assigned to the user profile, can havecorresponding assigned probability metrics, for one or more currentcontextual parameters, where the probability metrics each indicate atleast a threshold likelihood of a corresponding one of the twoparticular languages being spoken by the given user. Based on theassigned probability metrics, the two particular languages can beselected, and speech recognition of the given spoken utterance performedusing only speech recognition models for the two particular languages.The other candidate language(s) may not be selected for speechrecognition based on their corresponding assigned probability metrics,for the one or more current contextual parameters, failing to satisfy athreshold.

Performing the speech recognition using the speech recognition model fora first of the two particular languages can result in correspondingfirst text, in the first language, and optionally a first measure thatindicates a likelihood that the first text is representative of thegiven spoken utterance. Performing the speech recognition using thespeech recognition model for a second of the two particular languagescan result in corresponding second text, in the second language, andoptionally a second measure that indicates a likelihood that the secondtext is representative of the given spoken utterance. One of the firsttext or the second text can then be selected as appropriate text forgenerating and providing content that is responsive to the given spokenutterance.

In some implementations, one of the first text or the second text isselected based on the first and second measures that indicatecorresponding likelihoods that they are representative of the givenspoken utterance. For example, if the first measure indicates an 80%likelihood the first text is representative of the given spokenutterance, and the second measure indicates a 70% likelihood the secondtext is representative of the given spoken utterance, the first text canbe selected in lieu of the second text in view of the first measureindicating a greater likelihood than the second measure. In some ofthose implementations, the probability metrics for the two particularlanguages can further be considered. For example, assume again that thefirst measure indicates an 80% likelihood and the second measureindicates a 70% likelihood, and further assume that the probabilitymetric for the first language (for the one or more contextualparameters) is 30% and the probability metric for the second language(for the one or more contextual parameters) is 65%. In such an example,the second text can be selected in lieu of the first based onconsideration of both the measures that indicate the likelihoods thatthe first and second texts are representative of the given spokenutterance, and the probability metrics for the first and secondlanguages. For instance, a score for the first text can be based on 70%and 65% (e.g., a score of 0.455 based on 0.7*0.65) and a score for thesecond text can be based on 80% and 30% (e.g., a score of 0.24 based on0.8*0.3), and the first text selected based on having the higher score.

These and other implementations that select only a subset of candidatelanguages of a user to utilize in speech recognition of a spokenutterance of the user can conserve various resources of device(s) (e.g.,client device(s) and/or remote automated assistant component(s)) thatperform the speech recognition), as only speech recognition model(s)that correspond to the subset of languages are utilized in performingthe speech recognition. Further, these and other implementations thatutilize probability metrics for languages and/or measures for generatedtext can increase the likelihood that an automated assistant generatesresponsive content based on the appropriate text. This can lead to animproved automated assistant, and can also conserve various resources asit mitigates risk of the automated assistant providing errant responsivecontent based on recognition of text using a language that is not thelanguage being spoken in a spoken utterance. Such mitigation of risk oferrant responsive content prevents further resource intensive detectionof further user interface input (and processing of that input) inattempting to rectify the errant responsive content.

Some implementations described herein can additionally or alternativelyutilize various techniques to perform speech recognition, of a givenspoken utterance of a given user, in each of multiple languages assignedto a user profile of the given user. In those implementations,probability metrics (optionally dependent on current contextualparameter(s)) for the multiple languages and/or measures for each of thespeech recognitions can still be utilized to select only one of thespeech recognitions as appropriate for generating and providing contentthat is responsive to the given spoken utterance. As one particularexample, assume the given user has only a first language and a secondlanguage assigned in a user profile of the given user. Further assumethe first language has a probability metric of 60% and the secondlanguage has a probability metric of 40%. Speech recognition of thegiven spoken utterance can be performed using a first speech recognitionmodel for the first language to generate first text in the firstlanguage, and a measure that indicates a 70% likelihood the first textis representative of the given spoken utterance. Speech recognition ofthe given spoken utterance can also be performed using a second speechrecognition model for the second language to generate second text in thesecond language, and a measure that indicates a 70% likelihood thesecond text is representative of the given spoken utterance. One of thefirst text or the second text can then be selected as appropriate textfor generating and providing content that is responsive to the givenspoken utterance. For example, the first text can be selected in lieu ofthe second text based on the first language probability metric (60%)being higher than the second language probability metric (40%), andbased on the first and second text measures being the same (70%).

These and other implementations that utilize probability metrics forlanguages and/or measures for generated text can increase the likelihoodthat an automated assistant generates responsive content based on theappropriate text. This can lead to an improved automated assistant, andcan also conserve various resources as it mitigates risk of theautomated assistant providing errant responsive content based onrecognition of text using a language that is not the language beingspoken in a spoken utterance. Such mitigation of risk of errantresponsive content prevents further resource intensive detection offurther user interface input (and processing of that input) inattempting to rectify the errant responsive content.

As mentioned above, a user profile of a user providing a spokenutterance can be determined, and the user profile utilized to identifylanguage(s) assigned to the user profile and/or probability metric(s)for the language(s), for use in various implementations describedherein. In some implementations, the user profile is determined based ondetermining that at least a portion of audio data, that captures thespoken utterance, has one or more features (e.g., intonation, pitch,tone, accents, intonation, and/or any other feature) that correspond tofeature(s) assigned to the user profile. For example, the audio data canbe processed, using one or more acoustic models, to determine featuresof the audio data, and those feature(s) compared to feature(s) ofcandidate user profile(s) (e.g., candidate user profile(s) associatedwith a client device via which the audio data is received), and one ofthe candidate user profile(s) determined as the user profile for theaudio data based on the comparison indicating a sufficient match.

In some of those implementations, the portion of the audio data that isdetermined to have feature(s) corresponding to feature(s) mapped to theuser profile, is a portion that corresponds to an invocation phraseconfigured to invoke an automated assistant. An invocation phrase for anautomated assistant contains one or more hot words/trigger words and canbe, for example, “Hey Assistant”, “OK Assistant”, and/or “Assistant”.Often, a client device that includes an assistant interface includes oneor more locally stored acoustic models that the client device utilizesto monitor for an occurrence of a spoken invocation phrase. Such aclient device can locally process received audio data utilizing thelocally stored model, and discards any audio data that does not includethe spoken invocation phrase. However, when local processing of receivedaudio data indicates an occurrence of a spoken invocation phrase, theclient device will then cause that audio data and/or following audiodata to be further processed by the automated assistant.

For example, when the local processing indicates the occurrence of theinvocation phrase, further processing can occur to determine a userprofile and/or further processing can occur to perform speechrecognition according to implementations described herein. For instance,in some implementations, when local processing of a portion of audiodata utilizing a locally stored acoustic model indicates the occurrenceof a spoken invocation phrase in the portion, output from the locallystored acoustic model can indicate feature(s) of the portion of audiodata, and those feature(s) can be compared to feature(s) of candidateuser profiles to determine a user profile that corresponds to the spokeninvocation phrase (and resultantly, to the portion of the audio datathat follows the spoken invocation phrase). Also, for instance, whenlocal processing utilizing a locally stored acoustic model indicates theoccurrence of a spoken invocation phrase in a portion of audio data, anadditional acoustic model (local or remote) can optionally be utilizedto process at least the portion of audio data, determine features of theat least the portion of the audio data, and determine a user profilethat corresponds to those feature(s). In some implementations,additional or alternative techniques can be utilized to determine a userprofile of a user providing a spoken utterance, such as techniques thatuse output from a camera of a client device to determine a user profileof a user providing a spoken utterance detected at the client device.

As mentioned above, a user profile can be created for a particular userof a device or application in order to, inter alia, characterizelanguage preferences of the user. Users can be provided control overtheir user profiles, and a user can control whether any user profile iscreated for the user. A user profile for a user can identify multipledifferent languages that the user can use when engaging with the deviceor application. In some implementations, the user profile can bemanually created or modified by the user in order that the user canmanually designate preferred languages with which the user can engagewith the automated assistant. For example, the user can provide anexplicit natural language input such as, “My name is Chris and I speakEnglish,” in order to cause the automated assistant to set the Englishlanguage in the user profile as a most probable language for the user tospeak in when communicating with the automated assistant. As anotherexample, the user can provide an explicit natural language input suchas, “I speak English and Spanish” in order to cause the automatedassistant to set both the English language and the Spanish language ascandidate languages for the user in his/her user profile. Additionallyor alternatively, one or more candidate languages assigned to a userprofile for a user can be based on information that is associated withthe user and accessible to the automated assistant such as, for example,emails, contact names, images that include text, location data, etc. Forexample, the user profile of a user can include candidate languagesbased on past interactions of the user with the automated assistant(and/or other platforms) using those candidate languages. Further, theuser profile of a user can optionally have one or more correspondingprobabilities assigned to each of the candidate languages. The one ormore probabilities for a language, for the user profile of the user, canbe based on past usage of that language by the user for pastinteractions with an automated assistant and/or past interactions withother platforms (e.g., email platforms, messaging platforms, and/orsearch platforms).

In some implementations, each language identified by a user profile canbe associated with a probability that can depend on a context in which auser is interacting with the automated assistant. For instance, the userprofile can identify a probability that a particular language will beemployed by a user when a user is providing an invocation phrase forinitializing the automated assistant to perform a particular action.Alternatively, or additionally, the probability associated with aparticular language can be dynamic, and change during a dialoguesessions between a user and an automated assistant. Each of thelanguages can correspond to one or more speech recognition models, forconverting an audio input that embodies a particular language, to textand/or other semantic representations that characterize the input. Whenselecting the language or user profile that will be used to interpretinputs from a user, the automated assistant can select speechrecognition model(s) that are appropriate for a particular interaction.

The process for determining the language model(s) to use for aparticular interaction can include operations such as: processing astream of audio data using one or more language models to monitor for anoccurrence of an invocation phrase for invoking an automated assistant.The operations can further include detecting, based on the processing,an occurrence of the invocation phrase in a portion of the audio data.Based on the processing, or any additional processing using one or moreadditional language models, a determination can be made as to whetherthe audio data includes an invocation phrase that corresponds to astored user profile. When the audio data includes an invocation phrasethat corresponds to a stored user profile, a language assigned to theuser profile can be identified. Based on the identified language and/ora portion(s) of the audio data, a language model can be selected. Usingthe selected language model, additional portions of the audio data canbe processed and responsive content can be provided back to the userbased on the processing of the additional portions of the audio data.

In some implementations, when a user profile is associated with multipledifferent languages, and each language is associated with a probabilitythe respective language will be employed during an interaction, theprobability for each language can be dynamic. For example, a userprofile can initially indicate that a first language has a probabilityof A (e.g., 70%) and a second language has a probability of B (e.g.,30%) before starting a dialogue session between the user and anautomated assistant. During the interaction, the automated assistant candetect that a first query is in the second language. In response, theautomated assistant can cause one or more probabilities stored inassociation with the user profile to be modified. For instance, duringat least the remainder of the dialog, the user profile can indicate thatthe probability for the first language is reduced (e.g., 5%) and theprobability for the second language can be increased (e.g., 95%).

Multiple user profiles can be managed by an automated assistant that isaccessible through a computing device that is interacted with bymultiple different users. In this way, a language model selected by theautomated assistant can be based on a user profile that is selectedaccording to the user that is interacting with the automated assistant.The automated assistant can identify the user profile and one or morelanguage(s) that are indicated in the user profile as having at least athreshold likelihood of use by the user, at least in the instantcontext. In some implementations, a user can be associated with multipleuser profiles that are associated with different devices, or a singleuser profile that identifies languages that are preferred for particulardevices. For example, a user can prefer to speak a particular languagein their vehicle when communicating with an in-vehicle automatedassistant, but prefer to speak a different language in their house whereother persons who also speak the different language are present.Therefore, the user profile can identify multiple devices andlanguage(s) and corresponding probabilities for each device of theidentified multiple devices.

In some implementations, a language selected for a particular user canbe based on application data available to the automated assistant. Suchapplication data can correspond to applications that are loaded ontodevices through which the user interacts with the automated assistant.For example, a computing device that includes an automated assistantinterface can also host an email application that includes emailswritten in a particular language. The automated assistant canacknowledge the particular language (e.g., French) and confirm that theuser would prefer to interact with the automated assistant using thatparticular language when operating the computing device, theapplication, and/or any other device or module that can be associatedwith the automated assistant. For example, the automated assistant canspecifically prompt the user with a question such as, “I noticed usedyou understand French, would you like to interact using French?”Depending on the response, the automated assistant can modify the userprofile to indicate the preference of the user to interact using aparticular language for a device or application.

In some additional or alternative implementations described herein, aspeech recognition model (or other language model) can be preemptivelyloaded at a client device prior to a user invoking the automatedassistant. For example, a language model can be preemptively loaded at aclient device based on location data, message data (e.g., an email thatincludes travel plans), contact data, calendar data, and/or any otherdata that can be used to infer that the user would prefer a particularlanguage during an upcoming event or context. Furthermore, in someadditional or alternative implementations, a language model can beselected based on background noise captured in audio data, which can beused to infer a language with which the user may prefer to speak in aparticular context. For instance, the user can explicitly request thatthe automated assistant translate a particular portion of content (e.g.,text that the user will be reading out loud, audio that the user islistening to, etc.). The audio data corresponding to the request caninclude background noise, therefore the automated assistant can processthe audio data to determine that the user is requesting a translation,and also determine the language in which the user would like the finaltranslation to be in.

In some implementations, a number of languages identified by a userprofile can change according to an interest of the user in otherlanguages. For instance, a user profile can identify a default languagefor the user, but as the user further interacts with the automatedassistant, the automated assistant can identify additional languageswith which to engage with the user. As a result, the automated assistantcan push additional language packages to a device of the user, in orderthat a language model operating on the device can properly convertvoice-to-text when the user is communicating with the automatedassistant. In some implementations, a language package can be pushed toa device in anticipation of the user interacting with the automatedassistant at a particular time in the future. For instance, a user cancreate a calendar event corresponding to a time in the future, and atitle for the calendar event be written in a different language than adefault language of the user profile. When the calendar event approaches(e.g., a day before the calendar event), the automated assistant cancause a language package corresponding to the different language to bepushed to the device at which the user created the calendar event.Alternatively, when the calendar event identifies a location, and theautomated assistant is aware of a particular computing device that theuser typically uses at that location, the automated assistant can causethe language package to be pushed to that particular computing device.In this way, network bandwidth can be optimized by pushing languagepackages at a time when the user is on a faster or more accessiblenetwork, rather than when the user is traveling or otherwise not withina predictably reliable network.

Some implementations described herein relate to systems, methods, andapparatuses for selecting a responsive language for an automatedassistant from multiple different languages based on user activitiesthat indicate a preference of the user for a particular language. A listof preferred languages can be identified in a user language profileaccessible to the automated assistant, and the list can be modified toidentify other languages based on user activity. User activity, such asplaying music or reading websites in a particular language, can causethat particular language to be considered by the automated assistant foruse when interpreting, understanding, and/or responding to a spokenutterance from the user. In this way, that particular language can beselected over a default language of an assistant device the user isspeaking to, in order to ensure that the spoken utterance from the useris processed by the automated assistant according to a user-preferredlanguage.

In some implementations, a user-specific language profile can beselected based on a voice characteristic of a user that provided aspoken utterance. The user-specific language profile can identify one ormore language models with which to process audio data corresponding tothe spoken utterance. If data that characterizes user activity indicatesthat the user has been interacting with an application and/or acomputing device in a language identified, or not identified, by theuser-specific language profile, the user-specific language profile canbe modified accordingly and/or without any need for any directintervention by the user. For instance, if the user-specific languageprofile does not identify a particular language that the user has beenemploying to interact with an application, the user-specific languageprofile can be modified to reference that particular language and/orthat particular language's corresponding language model. In this way,the user-specific language profile can be adapted over time, withoutnecessarily requiring the user to explicitly changing certain languagesettings for their applications and/or devices.

In some implementations, data that characterizes user activity can bebased on activities performed by the user at different devices and/ordifferent applications. In this way, a list of languages preferred by auser can be adapted according to data that is not limited to defaultpreferences, but rather user activities that can indicate user languagepreferences from a variety of different sources. In someimplementations, speech that is converted to text according to alanguage that is selected based on user activities can also be employedfor purposes beyond providing a response from an automated assistant.For instance, the text that is converted from user speech can be placedin a search field of a website, a text field of an application, adocument to be stored and/or transmitted, and/or otherwise combined withany other data that can be accessible to a computing device.

The above description is provided as an overview of some implementationsof the present disclosure. Further description of those implementations,and other implementations, are described in more detail below.

In some implementations, a method implemented by one or more processorsis set forth as including operations such as processing audio data usingone or more acoustic models to monitor for an occurrence of aninvocation phrase configured to invoke an automated assistant. The audiodata can be based on detection of spoken input of a user at a clientdevice that includes an automated assistant interface for interactingwith the automated assistant. The method can further include detecting,based on processing the audio data using the one or more acousticmodels, the occurrence of the invocation phrase in a portion of theaudio data, and determining, based on processing of the audio data usingthe one or more acoustic models or other processing of the audio datausing one or more other acoustic models, that the portion of the audiodata that includes the invocation phrase corresponds to a user profilethat is accessible to the automated assistant. The method can furtherinclude identifying a language assigned to the user profile, andselecting a speech recognition model for the language. The speechrecognition model for the language can be based on determining theportion of the audio data corresponds to the user profile, and is basedon identifying the language as assigned to the user profile. The methodcan also include using the selected speech recognition model to processa subsequent portion of the audio data that follows the portion of theaudio data, and causing the automated assistant to provide responsivecontent that is determined based on the processing of the subsequentportion using the selected speech recognition model.

In some implementations, the method can further include identifying anadditional language assigned to the user profile. Furthermore, selectingthe speech recognition model can include selecting the speechrecognition model in lieu of an additional speech recognition model forthe additional language.

In some implementations, selecting the speech recognition model in lieuof the additional speech recognition model for the additional languagecan include identifying one or more contextual parameters associatedwith the audio data, and selecting the speech recognition model based onthe one or more contextual parameters being more strongly associated, inthe user profile, with the language than with the additional language.The one or more contextual parameters can include an identifier of theclient device. The one or more contextual parameters can include one ormultiple of: a time of day, a day of the week, and a location of theclient device.

In some implementations, selecting the speech recognition model for thelanguage can include selecting the speech recognition model based on atleast one probability assigned to the language in the user profile,wherein the at least one probability is based on previous interactions,with the automated assistant, that are associated with the user profile.

In some implementations, the at least one probability is associated withone or more contextual parameters, and the method can further includeidentifying that the one or more contextual parameters are associatedwith the audio data, and using the at least one probability in theselecting based on the at least one probability being associated withthe one or more contextual parameters identified as associated with theaudio data.

In some implementations, using the selected speech recognition model toprocess the subsequent portion of the audio data that follows theportion of audio data can include using the selected speech recognitionmodel in generating text, in the language, that corresponds to thesubsequent portion. Furthermore, causing the automated assistant toprovide responsive content that is determined based on the processing ofthe subsequent portion using the selected speech recognition model caninclude: generating the responsive content based on the text, andcausing the automated assistant interface to render output that is basedon the responsive content.

In some implementations, the automated assistant can be configured toaccess multiple different user profiles that are: available at theclient device, and associated with multiple different users of theclient device. In some implementations, the multiple different userprofiles can each identify one or more corresponding languages and acorresponding language probability for each of the correspondinglanguages. Furthermore, the corresponding language probabilities caneach be based on previous interactions between a corresponding one ofthe multiple different users and the automated assistant.

In some implementations, using the selected speech recognition model toprocess the subsequent portion of the audio data can include using theselected speech recognition model to generate first text in thelanguage. Furthermore, the method can include identifying an additionallanguage assigned to the user profile, and selecting an additionalspeech recognition model for the additional language. Selecting theadditional speech recognition model for the additional language can bebased on determining the portion of the audio data corresponds to theuser profile, and can be based on identifying the additional language asassigned to the user profile. Furthermore, the method can include usingthe selected additional speech recognition model to process thesubsequent portion of the audio data that follows the portion of theaudio data. Using the selected additional speech recognition model toprocess the subsequent portion of the audio data can include using theselected speech recognition model to generate second text in theadditional language, and selecting the first text in the language, inlieu of the second text in the additional language. Furthermore, causingthe automated assistant to provide responsive content that is determinedbased on the processing of the subsequent portion using the selectedspeech recognition model can include: causing, based on selecting thefirst text in the first language, the automated assistant to provideresponsive content that is determined based on the first text in thelanguage.

In yet other implementations, a method implemented by one or moreprocessors is set forth as including operations such as processing audiodata. The audio data can be based on detection of spoken input of a userat a client device, and the client device can include an automatedassistant interface for interacting with the automated assistant. Themethod can further include determining, based on processing of the audiodata, that at least a portion of the audio data matches a user profileaccessible to the automated assistant, and identifying at least oneprobabilistic metric assigned to the user profile and corresponding to aparticular speech recognition model, for a particular language. Themethod can also include, based on the at least one probabilistic metricsatisfying a threshold: selecting the particular speech recognitionmodel, for the particular language, for processing the audio data, andprocessing the audio data, using the particular speech recognition modelfor to the particular language, to generate text, in the particularlanguage, that corresponds to the spoken input. The method can furtherinclude causing the automated assistant to provide responsive contentthat is determined based on the generated text.

In some implementations, the user profile further includes an additionalprobabilistic metric corresponding to at least one different speechrecognition model, for a different language. Furthermore, the method caninclude, based on the additional probabilistic metric failing to satisfythe threshold, refraining from processing the audio data using thedifferent speech recognition model.

In some implementations, the method can include identifying currentcontextual data associated with the audio data. Identifying the at leastone probabilistic metric can be based on a correspondence between thecurrent contextual data and the at least one probabilistic metric. Insome implementations, the current contextual data can identify alocation of the client device or an application that is being accessedvia the client device when the spoken input is received. In someimplementations, the current contextual data identifies the clientdevice. In some implementations, the probabilistic metric can be basedon past interactions between the user and the automated assistant.

In yet other implementations, a method implemented by one or moreprocessors is set forth as including operations that include receivingaudio data. The audio data can be based on detection of spoken input ofa user at a client device, the client device including an automatedassistant interface for interacting with an automated assistant. Themethod can also determining that the audio data corresponds to a userprofile accessible to the automated assistant, and identifying a firstlanguage assigned to the user profile, and a first probability metricassigned to the first language in the user profile. The method canfurther include selecting a first speech recognition model for the firstlanguage. Selecting the first speech recognition model for the firstlanguage can be based on identifying the first language as assigned tothe user profile. The method can also include using the selected firstspeech recognition model to generate first text in the first language,and a first measure that indicates a likelihood the first text is anappropriate representation of the spoken input. The method can furtherinclude identifying a second language assigned to the user profile, anda second probability metric assigned to the second language in the userprofile. Additionally, the method can include selecting a second speechrecognition model for the second language. Selecting the second speechrecognition model for the second language can be based on identifyingthe second language as assigned to the user profile. The method can alsoinclude using the selected second speech recognition model to generatesecond text in the second language, and a second measure that indicatesa likelihood the second text is an appropriate representation of thespoken input. The method can further include selecting the first text inthe first language in lieu of the second text in the second language.Selecting the first text in the first language in lieu of the secondtext in the second language can be based on: the first probabilitymetric, the first measure, the second probability metric, and the secondmeasure. Furthermore, the method can include, in response to selectingthe first text, causing the automated assistant to provide responsivecontent that is determined based on the selected first text.

In some implementations, the method can include identifying a currentcontext associated with the audio data. Identifying the firstprobability metric can be based on the first probability metriccorresponding to the current context. Identifying the second probabilitymetric can be based on the second probability metric corresponding tothe current context. In some implementations, determining that the audiodata corresponds to the user profile can be based on comparing featuresof the audio data to features of the user profile.

In some implementations, a method implemented by one or more processorsis set forth as including operations such as determining that a spokenutterance was received at an automated assistant interface of acomputing device that is accessible to an automated assistant, whereinthe spoken utterance is provided in a first language and the automatedassistant is configured to provide a responsive output according to alanguage selected from at least the first language and a secondlanguage. The method can further include selecting, in response todetermining that the spoken utterance was received at the automatedassistant interface, a user-specific language profile corresponding to auser that provided the spoken utterance, wherein the user-specificlanguage profile identifies at least the second language as a candidatelanguage for providing the responsive output. The method can furtherinclude accessing data that characterizes user activity associated withinteractions between the user and one or more applications prior to theuser providing the spoken utterance, wherein the data indicates that theuser has interacted with the one or more applications using the firstlanguage. The method can further include selecting, based on the datathat characterizes the user activity, the first language over the secondlanguage for providing the responsive output; causing, based on thefirst language being selected over the second language, responsive audiodata to be generated, wherein the responsive audio data characterizesthe responsive output as expressed using the first language; andcausing, when the responsive audio data has been at least partiallygenerated, the responsive output to be provided, at the computing devicevia the automated assistant, using the responsive audio data.

In some implementations, selecting the user-specific language profile isbased on audio data that embodies at least a portion of the spokenutterance and a voice characteristic exhibited by the user when the userprovided the portion of the spoken utterance. In some implementationsthe automated assistant is configured to select the first language as adefault language when user activity data is not accessible to theautomated assistant or does not indicate that the user has interactedwith the one or more applications using the second language. In someimplementations, the method can further include modifying, based on thedata that characterizes the user activity, the user-specific languageprofile to indicate that the first language is another candidate forproviding subsequent responsive content via the automated assistant. Insome implementations the data further indicates that the user hasinteracted with the one or more applications using both the firstlanguage and the second language. In some implementations the datafurther indicates that the user has provided an input to an applicationof the one or more applications using the second language and engagedwith content, which was provided by the application in the firstlanguage. In some implementations, the method can further includecausing, at least based on the data that characterizes the useractivity, the computing device to receive a language model,corresponding to the first language, for processing at least a portionof subsequent spoken utterances provided in the first language. In someimplementations, the user-specific language profile identifying at leastthe second language is based on a setting, of the automated assistant,that was explicitly set by the user before the spoken utterance wasreceived at the automated assistant interface.

In other implementations, a method implemented by one or more processorsis set forth as including operations such as determining that a spokenutterance was received by a computing device from a user, the computingdevice comprising an automated assistant that is capable of beinginvoked in response to the user providing the spoken utterance. Themethod can further include causing audio data, which is based on thespoken utterance, to be processed, by at least a first language modeland a second language model, wherein the first language model and thesecond language model are selected according to a user-specificpreference of language models for interpreting spoken utterances fromthe user. The method can further include determining, based onprocessing of the audio data, a first score that characterizes aprobability that the spoken utterance was provided in a first languageand a second score that characterizes another probability that thespoken utterance was provided in a second language. The method canfurther include determining, based on a user-specific language profilethat is accessible to the automated assistant, that the user hasintentionally accessed digital content provided in the first language.The method can further include determining, based on determining thatthe user has intentionally accessed the digital content provided in thefirst language, another first score to reflect an increase in theprobability that the spoken utterance was provided in the firstlanguage. The method can further include causing, based on the otherfirst score and the second score, additional audio data to be processedaccording to a language selected from at least the first language andthe second language.

In some implementations, determining that the user has intentionallyaccessed digital content provided in the first language includesdetermining that the user provided an input in the second language to anapplication, and that the user made a selection of the digital content,which was provided in the first language. In some implementationscausing additional audio to be processed according to the languageselected from at least the first language and the second languageincludes determining, based on the first score and the second score, apriority of at least one language of the first language and the secondlanguage for use when the automated assistant is generating a responsiveoutput for the user. In some implementations, the method can furtherinclude causing the additional audio data to be processed according tothe language and converted into textual data; and causing the textualdata to be input to a text field of a separate application that isdifferent than an application at which the user accessed the digitalcontent. In some implementations, the other score is at least partiallydependent upon whether the user made a selection of at least oneparticular content item of different content items that include thedigital content provided in the first language and different digitalcontent provided in the second language. In some implementations, themethod can further include determining, based on the audio datacorresponding to the spoken utterance, a voice characteristic associatedwith the user and captured by the audio data, wherein the user-specificpreference of language models is identified based on the voicecharacteristic.

In yet other implementations, a method implemented by one or moreprocessors is set forth as including operations such as determining thata user has interacted with one or more applications when the one or moreapplications were providing natural language content in a firstlanguage, wherein the first language is different from a second languagethat is a user-specific speech processing language for an automatedassistant that is accessible via a computing device. The method canfurther include causing, based on determining that the user hasinteracted with the one or more applications, a user-specific languageprofile, corresponding to the user, to be modified to reference thefirst language. The method can receiving, subsequent to theuser-specific language profile being modified to reference the firstlanguage, audio data corresponding to a spoken utterance that was atleast partially received at an automated assistant interface of thecomputing device. The method can further include causing, based on thefirst language being included in the user-specific language profile andthe second language being the user-specific speech processing language,the audio data to be processed by a first language model correspondingto the first language and a second language model corresponding to thesecond language. The method can further include receiving, based on thefirst language model and the second language model processing the audiodata, a first score and a second score, wherein the first scorecharacterizes a probability that the spoken utterance was provided bythe user in the first language and the second score characterizesanother probability that the spoken utterance was provided by the userin the second language. The method can further include selecting, basedon at least the first score and the second score, a candidate language,from at least the first language and the second language, for use whenprocessing additional audio data corresponding to the spoken utterance.The method can further include causing, based on selecting the candidatelanguage, the additional audio data corresponding to the spokenutterance to be processed using a particular language model thatcorresponds to the candidate language.

In some implementations, selecting the candidate language is furtherbased on whether the user engaged with natural language content bydirectly selecting the natural language content. In someimplementations, when application data accessible to the automatedassistant indicates that the user has previously selected other naturallanguage content provided in the second language, the second language isselected as the candidate language over the first language. In someimplementations, the method can further include causing, based on thespoken utterance being processed using the particular language model,responsive data to be provided to the computing device, wherein theresponsive data embodies the candidate language and is configured to beused, by the computing device, to provide an audible output for theuser. In some implementations, determining the user-specific languageprofile corresponding to the user includes identifying voicecharacteristics embodied by the auto data and associated with the user.In some implementations, selecting a candidate language, from at leastthe first language and the second language, includes determining, foreach language of the first language and the second language, a scorethat characterizes a similarity between each language and the spokenutterance.

Aspects of the present disclosure may advantageously reduce incidentsduring which a spoken language utterance is not interpreted by anappropriate speech recognition model. Consequently, an improved responseto user input may be received, reducing occasions on which an automaticassistant is unresponsive or does not operate as intended. As well asimproving functionality for a user, this may reduce load on computerand/or network resources used to implement such an assistant by reducingrepeat commands in order to reach a desired result.

Other implementations may include a non-transitory computer readablestorage medium storing instructions executable by one or more processors(e.g., central processing unit(s) (CPU(s)), graphics processing unit(s)(GPU(s)), and/or tensor processing unit(s) (TPU(s)) to perform a methodsuch as one or more of the methods described above and/or elsewhereherein. Yet other implementations may include a system of one or morecomputers that include one or more processors operable to execute storedinstructions to perform a method such as one or more of the methodsdescribed above and/or elsewhere herein.

It should be appreciated that all combinations of the foregoing conceptsand additional concepts described in greater detail herein arecontemplated as being part of the subject matter disclosed herein. Forexample, all combinations of claimed subject matter appearing at the endof this disclosure are contemplated as being part of the subject matterdisclosed herein.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a system for selecting a language for an automatedassistant to interact with a user.

FIG. 2 illustrates a diagram of an example of a speech recognition modelbeing selected based on a context in which a user is interacting with,or invoking, an automated assistant.

FIG. 3 illustrates a system for selecting a language in which to respondto a user, via an automated assistant, based on historical data thatcharacterizes previous interactions between the user and one or moreapplications and/or computing devices.

FIG. 4 illustrates a method for selecting a language, from multipledifferent languages, for use when responding to a spoken utterance froma user.

FIG. 5 illustrates a method for processing audio data according to aspeech recognition model that is selected based on contents of a userprofile.

FIG. 6 illustrates a method for scheduling a language model to bepre-emptively activated according to contextual data accessible to anautomated assistant.

FIG. 7 is a block diagram of an example computer system.

DETAILED DESCRIPTION

FIG. 1 illustrates a system 100 for selecting a language for anautomated assistant 104 to interact with a user 130. The automatedassistant 104 can operate, in part via an automated assistant 126 thatis provided at one or more client devices, such as client computingdevice 118 (e.g., a portable computing device 132), and in part via oneor more remote computing device(s) 112, such as a server device 102. Theuser 130 can interact with the automated assistant 104 via an assistantinterface 128 of the client computing device 118. The assistantinterface 128 includes user interface input device(s) and user interfaceoutput device(s) for use by the automated assistant 126 in interfacingwith a user. The assistant interface 128 accepts user interface inputsof the user 130 that are directed to the automated assistant 104, andrenders content from the automated assistant 104 for presentation to theuser 130. The assistant interface 128 can include, a microphone, acamera, a touch screen display, and/or any other user interface inputdevice(s) of the client computing device 118. The assistant interface128 can also include a display, projector, a speaker, and/or any otheruser interface output device(s) of the client computing device 118 thatcan be used to render content from the automated assistant 104. A usercan initialize the automated assistant 104 by providing a verbal,textual, or a graphical input to the assistant interface 128 to causethe automated assistant 104 to perform a function (e.g., provide data,control a peripheral device, access an agent, etc.). The clientcomputing device 118 can include a display device, which can be adisplay panel that includes a touch interface for receiving touch inputsand/or gestures for allowing a user to control applications of theclient computing device 118 via the touch interface. In someimplementations, client computing device 118 can lack a display device,thereby providing an audible user interface output, without providing agraphical user interface output. Furthermore, the client computingdevice 118 can provide a user interface input device, such as amicrophone, for receiving spoken natural language inputs from the user130 (and from additional unillustrated users).

The client computing device 118 can be in communication with the remotecomputing device 112 over a network 114, such as the internet. Theclient computing device 118 can offload computational tasks to theremote computing device 112 in order to, for example, conservecomputational resources at the client computing device 118 and/orleverage more robust resources available at the remote computing device112. For instance, the remote computing device 112 can host theautomated assistant 104, and the client computing device 118 cantransmit inputs received at one or more assistant interfaces to theremote computing device 112. However, in some implementations, theautomated assistant 104 can be hosted by the automated assistant 126 atthe client computing device 118. In various implementations, all or lessthan all aspects of the automated assistant 104 can be implemented bythe automated assistant 126 at the client computing device 118. In someof those implementations, aspects of the automated assistant 104 areimplemented via the local automated assistant 126 of the clientcomputing device 118 and interface with the remote computing device 112that implements other aspects of the automated assistant 104. The remotecomputing device 112 can optionally serve a plurality of users and theirassociated assistant applications via multiple threads. Inimplementations where all or less than all aspects of the automatedassistant 104 are implemented via the local automated assistant 126 ofthe client computing device 118, the local automated assistant 126 canbe an application that is separate from an operating system of theclient computing device 118 (e.g., installed “on top” of the operatingsystem)—or can alternatively be implemented directly by the operatingsystem of the client computing device 118 (e.g., considered anapplication of, but integral with, the operating system).

In some implementations, the remote computing device 112 can include aspeech recognition engine 134 that can process audio data received at anassistant interface to determine text and/or other semanticrepresentation(s) of a spoken utterance embodied in the audio data. Thespeech recognition engine 134 can utilize one or more speech recognitionmodels 136 in determining text and/or other semantic representations ofa spoken utterance embodied in audio data. As described herein, multiplespeech recognition models 136 can be provided, and each can be for acorresponding language. For example, a first speech recognition modelcan be for English, a second speech recognition model can be for French,etc. Further, as described herein, which of multiple speech recognitionmodels 136 is utilized in processing of audio data can be based on, forexample, information contained in a user profile determined tocorrespond to the audio data being processed. For example, in someimplementations a given user profile can be determined to correspond toaudio data being processed based on matching voice features of the audiodata to voice features associated with the user profile. Also, forexample, in some implementations a given user profile can additionallyor alternatively be determined to correspond to audio data beingprocessed based on matching other sensor data (e.g., data from a cameraand/or data from a fingerprint sensor), from sensor(s) of the clientcomputing device 118, to corresponding data of the user profile.Continuing with the examples, if the user profile indicates that anEnglish speech recognition model is significantly more likely to beutilized for the user than a French speech recognition model, theEnglish speech recognition model can be utilized to process the audiodata. The English speech recognition model can optionally be utilized inlieu of utilizing the French speech recognition model (or any otherspeech recognition model for a non-English language).

Additionally or alternatively, multiple speech recognition models 136for multiple different languages can be utilized in processing of audiodata to generate multiple candidate semantic representations (e.g., eachcorresponding to a different language). In some of thoseimplementations, probability metrics (optionally dependent on currentcontextual parameter(s)) for the multiple different languages and/ormeasures for each of the multiple candidate semantic representations canbe utilized to select only one of the candidate semantic representationsas appropriate for generating and providing content that is responsiveto the given spoken utterance.

In some implementations, the speech recognition models 136 each includeone or machine learning models (e.g., neural network models) and/orstatistical models for determining text (or other semanticrepresentation) that corresponds to a spoken utterance embodied in audiodata. In some implementations, the speech recognition engine 134 canutilize one of the speech recognition models 136 to determine phonemes,for a corresponding language, that are included in the audio data, andthen generate text, for the corresponding language, based on thedetermined phonemes. In some implementations, speech recognition engine134 receives an audio recording of voice input, e.g., in the form ofdigital audio data, and uses one or more models to convert the digitalaudio data into one or more text tokens. The model or models used bysuch functionality, which can collectively be considered a speechrecognition model, generally model the relationship between an audiosignal and phonetic units in a language, along with word sequences inthe language. In some implementations, speech recognition models mayinclude one or more of acoustic models, language models, pronunciationmodels, etc., as well as models combining functionality of one or moreof such models. In some implementations, for example, speech recognitionmodels may be implemented as finite state decoding graphs including aplurality of paths or pathways.

The automated assistant 104 can operate according to one or morelanguage models simultaneously in order to be responsive to naturallanguage inputs from the user 130 and/or provide responsive content tothe user 130. For example, in some implementations, the automatedassistant 104 can operate using an invocation phrase modelsimultaneously with using a speech recognition model that is associatedwith a particular language. In this way, the automated assistant canprocess audio data that embodies an invocation phrase and one or morecommands provided in the particular language, and be responsive to boththe invocation phrase and the one or more commands. The text, and/orsemantic representations of text, converted from the audio data canparsed by a text parser engine 110 and made available to the automatedassistant 104 as textual data or semantic data that can be used togenerate and/or identify command phrases from the user 130 and/or athird party application.

In some implementations, a language model can include or refer to anacoustic model, a speech recognition model, an invocation phrase model,a voice-to-text model, a voice-to-semantic representation model, atext-to-semantic representation model, and/or any other model that canbe used to translate a natural language input into data that can beprocessed by an application or a device. In some implementations, alanguage that the automated assistant 104 uses to communicate with theuser 130 can be selected from one or more languages identified in a userprofile. The automated assistant can access a user profile from one ormore server user profiles 120 and/or one or more client user profiles122. For example, when the user 130 is communicating with an automatedassistant 126 at the client computing device 118, the user 130 canprovide a spoken natural language input to an assistant interface 128 ofthe client computing device 118. The spoken natural language input canbe converted into audio data, which can be processed by a clientlanguage model 124, such as an invocation phrase model for identifyingwhether the audio data embodies an invocation phrase for invoking theautomated assistant 126. The client language model 124 can also providea voice signature of the user 130. Based on the voice signature of theuser 130, the automated assistant 126 can select a client user profile122 that corresponds to the user 130. The client user profile 122 canidentify one or more languages that the identified user 130 prefers tocommunicate in, depending on a context of an interaction, orcharacteristics of the interaction between the user 130 and theautomated assistant 126.

In some implementations, the invocation phrase model can be employed atthe client computing device 118 to determine whether the user 130 isintending to invoke the automated assistant 104. When the user providesa natural language input to the assistant interface 128, and the naturallanguage input includes an invocation phrase for invoking the automatedassistant 104, the client computing device 118 can cause the automatedassistant 104 at the server device 102 to receive the natural languageinput and/or subsequent natural language inputs from the user 130. Forinstance, in response to determining that the user 130 is intending toinvoke the automated assistant 104 at the client computing device 118,one or more communication channels can be established between the clientcomputing device 118 and the server device 102. Thereafter, as the usercontinues to provide natural language inputs to the assistant interface128, the natural language inputs will be converted into data that isthen transmitted over the network 114 and processed by the server device102. Thereafter, the automated assistant 104 can analyze the data todetermine a user profile, that corresponds to the user, from one or moreserver user profiles 120 available at the server device 102. A speechrecognition model 136 from the selected server user profile can beselected for communicating with the user 130. The selection of thespeech recognition model 136 from the user profile can be based on acontext of the user 130, one or more confidence scores or probabilitiesassociated with one or more speech recognition model 136 identified bythe user profile, and/or any other information that can be used toselect a language.

In some implementations, each language identified by a user profile ofthe server user profiles 120 and/or the client user profiles 122 can beassociated with a probability or a confidence score that can be staticor dynamic. For example, a default language for a particular user can beidentified by a user profile and include a correspondence to aconfidence score that is higher than other confidence scores associatedwith other languages identified by the user profile. In someimplementations, a language identified by a user profile can beassociated with multiple confidence scores, and each confidence score ofthe multiple conference scores can be associated with a context. Forexample, the user profile can identify “home” as a location context fora particular language and a confidence score for the location contextfor the particular language. Because the user may prefer to communicateusing the particular language at home over other languages, the userprofile can identify a separate language and a separate confidence scoreassociated with the separate language that is lower than the confidencescore corresponding to the “home” location context. In other words, theuser profile can indicate, using confidence scores and contextual data,that the user prefers to speak a particular language at home over otherlanguages that are identified by the user profile.

In some implementations, a confidence score for a particular languageand for a particular context can be based on assistant interaction data106, which can be accessible to an automated assistant at the serverdevice 102 or the client computing device 118. The assistant interactiondata 106 can be generated based on historical interactions between oneor more users and the automated assistant. Therefore, as the userinteracts with the automated assistant using one or more differentlanguages, the assistant interaction data 106 can reflect the one ormore different languages that the user has communicated with. Theconfidence scores associated with the different languages, as identifiedby a user profile, can be dynamically updated based on how the assistantinteraction data 106 changes over time. For example, contextual dataidentified by a user profile can identify a contact with which the usercommunicates with through the automated assistant by employing theautomated assistant to compose messages to be sent to the contact.Initially, a user profile can identify a particular language that has afirst confidence score when composing messages. However, if the usersubsequently directs the automated assistant to compose a message forthe contact in another language, a second confidence score, that isassociated with the other language and a context of sending a message tothe contact, can be increased above the first confidence score. In thisway, the other language will become the default language according tothe user profile, at least when the user is directing the automatedassistant to compose a message for the contact. As a result, the userdoes not have to explicitly specify the other language when composing amessage to the contact, thereby conserving computational resources thatwould otherwise be wasted on processing audio in a variety of differentlanguages.

FIG. 2 illustrates a diagram 200 of an example of a language model beingselected based on a context in which a user 214 is interacting with, orinvoking, an automated assistant. Specifically, a user 214 can interactwith an automated assistant through an assistant device 212. Theassistant device 212 can store or access a table 220 that identifies oneor more user profiles corresponding to different users that have or caninteract with the automated assistant. For example, the table 220 canidentify the user 214 (i.e., “1”) and a separate user (i.e., “2”), eachof which can be associated with different user profiles. A user profilecan identify language preferences of a user, and the languagepreferences can be based on a context in which the user is interactingwith the automated assistant. In some implementations, the languagepreferences can be adapted by the automated assistant overtime as theuser interacts with the automated assistant (and/or other platforms)using different languages.

For example, the assistant device 212 can be located within a home ofthe user 214, which can be a residence of a separate user that alsointeracts with the automated assistant through the assistant device 212.The assistant device 212 can switch between user profiles according tothe user that is employing the assistant device 212 to interact with theautomated assistant. For instance, the user 214 can interact with theautomated assistant through the assistant device 212 using English orFrench, while a separate user can interact with the automated assistantthrough the assistant device 212 using English or Spanish. In order forthe assistant device 212 to understand a respective user and communicatewith the respective user, the assistant device 212 can select a languagemodel (e.g., a speech recognition model) for interpreting inputs fromthe user. The language model can be selected based on contents of thetable 220 and/or a user profile associated with the respective user.Each language model can be associated with a score or probability, whichquantifies a likelihood that the user is or will be communicating withthe automated assistant according to a particular language.

In some implementations, the score or probability can be based on acontext in which the user is interacting with the automated assistant orthe assistant device 212. For example, the user 214 can provide a spokennatural language input 218, such as “Assistant,” in order to invoke theautomated assistant. The assistant device 212 can include an automatedassistant interface that receives the spoken natural language input 218for further processing at the assistant device 212. The assistant device212 can employ a language model (e.g., an invocation phrase model) fordetermining a voice signature based on characteristics of the voice ofthe user 214. When the assistant device 212 has identified the voicesignature of the user 214, the assistant device 212 can access a table220 that identifies multiple different user profiles, corresponding tomultiple different voice signatures, respectively, and a correspondencebetween the user profiles and different language models. The table 220can also provide a correspondence between the language models and scoresor probabilities, which can be used to determine whether to employ aparticular language model. The scores can be based on a context in whichthe user 214 is invoking an automated assistant that is accessiblethrough the assistant device 212.

As provided in FIG. 2 , the user 214 can be operating an application 206(i.e., APPLICATION 1) through a portable computing device 216, whichprovides basis for the assistant device 212 to select a particularlanguage model. Alternatively, or additionally, the assistant device 212can select a language model based on the user 214 being at a location210. The table 220, or the user profile corresponding to the user 214,can provide a correspondence between a score for a language model and acontext of the application and or the location. By identifying thecontext in which the user 214 is invoking the automated assistant, andcomparing the contacts to the table 220, the assistant device 212 candetermine the language model that has the highest score for the user214. For instance, the automated assistant or the assistant device 212can select the English model based on the user accessing the application206 and being located at the location 210. Alternatively, if the userwas located at LOCATION_2, identified by the table 220, but accessingAPPLICATION_1, the automated assistant can select the English modelbecause the score for APPLICATION_1 is greater than the score forLOCATION_2. However, if the user was located at LOCATION_1, but usingAPPLICATION_2 to communicate with CONTACT_2, the automated assistant canselect the French model because the score for LOCATION_1 is less thanthe sum of the scores for APPLICATION_2 and CONTACT_2 (in other words:0.5<(0.6+0.3)).

In some implementations, if the automated assistant selects a languagemodel that was not intended by the user 214, and the user corrects theautomated assistant by requesting a different language model beemployed, the scores for each of the respective language models can beupdated. For example, the language model that was initially selected canhave its score decreased while the requested language model can have itsscore increased. If the requested language model (e.g., Swahili) is notidentified by a user profile (e.g., the user profile “1” does notidentify Swahili), the automated assistant can cause a request to begenerated and transmitted over a network 202. The request can bereceived by a remote device 208, which can store multiple differentlanguage models that can be pushed to various devices upon request. Forexample, if the user 214 requests that a Swahili language model beemployed, the automated assistant can request the Swahili language modelfrom the remote device 208 and modify the user profile to identify theSwahili language model. Furthermore, the automated assistant can modifythe user profile to identify a context in which the user requested theSwahili language model, and provide a score for the Swahili languagemodel in the identified context (e.g., the user 214 being located atLOCATION_1).

In some implementations, the entries in the table 220 can correspond tosame contexts but different scores for each model. For instance,APPLICATION_1 and APPLICATION_2 can be the same applications, LOCATION_1and LOCATION_2 can be the same locations, and CONTACT_1 and CONTACT_2can be the same contacts. Furthermore, each application, location,and/or contact can correspond to different scores, depending on themodel being referenced. For example, if the user 213 is using theapplication at the location, the English model can be selected over theFrench model, since the total score for the English model would be 0.13and the score for the French model would be 0.12. As another example, ifthe user 213 is at the location and communicating with the contacts, theEnglish model would be selected over the French model, since the totalscore for the English model would be 0.14 and the score for the Frenchmodel would be 0.9.

FIG. 3 illustrates a system 300 for selecting a language in which torespond to a user 320, via an automated assistant 314, based onhistorical data (i.e., application data 310) that characterizes previousinteractions between the user and one or more applications (e.g.,application(s) 308) and/or computing devices. In this way, the automatedassistant 314 can respond to the user 320 in a more suitable languagewhen the user 320 is multi-lingual. Furthermore, this can allow theautomated assistant 314 to select a more suitable language to processaudio data, corresponding to spoken utterances 318 from the user 320, inorder to preserve computational resources that might otherwise beexpended processing the spoken utterance using a wrong language model.

For instance, the automated assistant 314 can be accessible via anautomated assistant interface 316 of an assistant device 322, which canbe a standalone speaker device that includes an audio system and/or atouch display panel for interfacing with the automated assistant 314. Insome implementations, the automated assistant 314 can perform actionsand/or routines that comprise one or more actions. An action can includeexecuting a function at the assistant device 322, at a device that isremote from the assistant device 322, such as computing device 306(e.g., a tablet device 326), and/or any other operation capable of beingcontrolled by a computing device. For instance, the user 320 can providethe spoken utterance “Goodnight,” in order to cause the automatedassistant 314 to perform one or more actions that the user 320 typicallylikes being performed before going to bed. However, the user 320 may bebilingual and therefore provide the spoken utterance in differentlanguages, such as Swahili, as indicated by the spoken utterance 318illustrated in FIG. 3 . The phrase “Usiku mwema” in Swahili can mean“Goodnight” in English. Therefore, when the user provides the spokenutterance 318, they may be intending to cause the automated assistant314 to perform the action(s) associated with the spoken utterance“Goodnight.”

In order to ensure that the user 320 is intending to invoke theautomated assistant 314 to perform the “Goodnight” routine, and/or inorder to provide a response in a preferred language of the user 320, theautomated assistant 314 can select a language from multiple differentlanguages. Specifically, the automated assistant 314 can select alanguage model for processing the spoken utterance 318 from the user320, and the same or a different language model for responding to theuser 320. For instance, in response to receiving the spoken utterance318 at the automated assistant interface 316, the automated assistant314 can cause at least a portion of the spoken utterance 318 to beprocessed at the assistant device 322 and/or a remote device (e.g., aserver device). The portion of the spoken utterance 318 can be processedto determine a score for each language that is identified in a userlanguage profile 328, that is stored at or otherwise accessible to theassistant device 322.

For instance, initially the user language profile 328, which can beavailable from a remote server 304 (e.g., remote relative to theassistant device 322) and/or the assistant device 322 can indicate thatan “English model” is a default language model for operations involvingthe automated assistant 314, and/or is presently the only model foroperations involving the automated assistant 314. The default languagemodel can be employed by the assistant device 322 when there are noother indications, such as contextual data and/or application data, thatanother language model should be used. Optionally, the default languagemodel can be employed by the assistant device 322 and/or any otherdevice that the automated assistant 314 can access when a scorecorresponding to one or more other language models does not satisfy aparticular language model threshold. Languages that are considered bythe automated assistant 314 to be potentially useful for processing atleast a portion of a spoken utterance and/or creating an output forresponding to a spoken utterance, can be considered candidate languages.Additionally, or alternatively, languages or language models that havecorresponding scores that satisfy a language threshold can be consideredcandidate languages. In some implementations, for example, a user canhave an “English model” set as their default language for interactingwith a computing device 306. However, the user 320 can interact with theautomated assistant 314 in a way that causes a user language profile 328to implicitly load a “Swahili model” as a potential alternative languagefor processing. Such implicitly loading can happen without the user 320explicitly requesting the “Swahili model” to be loaded or added to theiruser language profile 328. Rather, one or more secondary and/or backuplanguage models can be implicitly loaded based on data generated duringinteractions between the user 320 and the automated assistant 314 and/orthe computing device 306.

A score (i.e., a ranking) can be determined using data that isassociated with the user 320, the assistant device 322, contextual data,application data 310, any device (e.g., a remote server 304) and/orapplication, and/or any other apparatus or property associated with aspoken utterance. For instance, in response to receiving the spokenutterance 318, the automated assistant 314 can determine a first scoreand/or a ranking of one or more languages to use when responding to theuser 320 and/or processing their spoken utterance 318. The score and/orranking can reflect a probability that the spoken utterance 318 is in aparticular language, and can prioritize at least one language (e.g.,Swahili) over another language (e.g., English), depending on theparticular spoken utterance 318.

In some implementations, a second score and/or a modified ranking can begenerated by the automated assistant based on data that is accessible tothe automated assistant. For instance, the automated assistant 314 cancause a second score and/or a modified ranking to be generated based onapplication data 310, which corresponds to at least one application 308that is accessible via the computing device 306. The user languageprofile 328 can be based on information that is provided by theapplication 308 and/or is otherwise based on the application data 310.In some implementations, the user language profile 328 can be updatedbased on most recent activity between the user 320 and the applicationdata 310 and/or the application 308. The application 308 can be, but isnot limited to, an internet browser, mobile application, media streamingapplication, word processing application, messaging application,schedule application, IoT application, health application, social mediaapplication, and/or any other application that can be accessible via acomputing device. Application data 310 can be provided by theapplication 308 for use by the automated assistant 314 with permissionfrom the user. In some implementations, the application data 310 canindicate languages that the user prefers to interact with when operatingtheir computing device 306. As one non-limiting example, the applicationdata 310 can indicate that the user 320 provided an input to theapplication 308 using a first language (e.g., English), and selectedcontent that was provided in a second language (e.g., Swahili). This canindicate that, although the user 320 can speak some English, they mayprefer Swahili over English. As a result, the automated assistant 314can acknowledge this preference in view of the application data 310 cancause the second score and/or modified ranking to prioritize Swahiliover English (e.g., a “score” for English can be 0.8, and a “score” forSwahili can be higher at 0.9). Additionally, or alternatively, theautomated assistant 314 can acknowledge this preference and use thepreference to add a Swahili model as another option to a languageprofile that did not previously identify Swahili, and/or otherwisechoose the Swahili model for processing content generated based oninteractions between the user 320 and the automated assistant 314.

In some implementations, the second score and/or modified ranking can bebased on application data from multiple different sources, such asmultiple different devices and/or multiple different applications. Whenthe second score and/or modified ranking has been determined, theautomated assistant 314 can identify the language with the highestpriority (i.e., a highest ranking and/or a highest score) and use thatlanguage when converting audio data, corresponding to the spokenutterance 318 to text, and/or generating a response to the spokenutterance 318. For instance, the assistant device 322 can convert thespoken utterance 318 to audio data that can be processed at theassistant device 322 and/or provided, over a network 302 (e.g., theinternet), to the remote server 304. The audio data can then beprocessed using at least the prioritized language (e.g., Swahili) andconverted into English text and/or English phonemes corresponding to anEnglish translation of the spoken utterance 318. The resulting textand/or phonemes can then be used to identify a routine, action, and/orany other function being requested by the user 320 (e.g., the user 320can be invoking a “Goodnight” routine, but in a language other thanEnglish).

In some implementations, when generating a response to the user 320, theautomated assistant 314 can use a selected language that is based onscores and/or rankings of any languages accessible to the automatedassistant 314. For instance, in response to receiving the spokenutterance 318, the automated assistant 314 can identify a particularaction being requested by the user 320. The automated assistant 314 canconfirm that the particular action has been identified by provided aresponse such as “Ok.” However, because another language (e.g., Swahili)has been prioritized over English, the automated assistant 314 can usethe prioritized language to provide the response the automated assistant314 would otherwise respond with in a default language. For instance,the automated assistant 314 can cause an output response 330, such as“Sawa,” to be provided from the assistant device 322 in order toindicate to the user 320 that their request to perform the “Goodnight”routine has been acknowledged.

In some implementations, a spoken utterance can converted into textaccording to any of the implementations discussed herein and providedinto a text field that is being presented at a device and/orapplication. As a non-limiting example, the user 320 can provide aspoken utterance that is intended to be an input into a text field beingpresented at their tablet device 326. In response to receiving thespoken utterance, an automated assistant can determining a ranking oflanguages to use when processing audio data corresponding to the spokenutterance and/or providing a responsive output to the spoken utterance.The prioritized language resulting from the ranking can then be selectedfor processing the audio data that is based on the spoken utterance, andtext resulting from processing at least a portion of the spokenutterance can be provided into the text field. In this way, a user 320does not necessarily have to waste time manually switching betweenlanguage operating modes of a computing device, but, rather, can rely onan automated assistant of the computing device to automatically switchlanguages according to a spoken utterance being provided and/or otherapplication data.

In some implementations, scoring and/or ranking of languages, and/oremploying a user language profile 328 for identifying one or morelanguage models, as discussed herein, can be performed for interactionsbetween the user and a computing device, without necessarily involvingan automated assistant. For instance, such operations can be performedin order to select a language model for converting speech, received at amicrophone, into text that is provided into a field of a user interface,such as when writing a text or an email. Additionally, or alternatively,such operations can be employed in order to generally assist a computingdevice with understanding, interpreting, and/or responding to a user,without necessarily involving the automated assistant. In this way, theuser may not necessarily see how they are being interpreted by thecomputing device (e.g., they may not see their speech being converted totext) but, nonetheless, the computing device will interpret, understand,and/or respond to the user according to any of the operations and/orprocesses discussed herein.

FIG. 4 illustrates a method 400 for selecting a language for use whenresponding to a spoken utterance from a user. The language can beselected from a group of multiple different languages already identifiedby a model, and/or selected from one or more languages that have notbeen identified by a model corresponding to a user. The method 400 canbe performed by one or more computing devices or applications, and/orany other apparatus or module capable of processing a user input. Themethod 400 can include an operation 402 of determining that a spokenutterance was received by a computing device that provides access to anautomated assistant. At least a portion of the spoken utterance can bereceived at the computing device and converted into audio data that canbe further processed at the computing device and/or transmitted toanother computing device for further processing.

The method 400 can further include an operation 404 of causing audiodata that is based on the spoken utterance to be processed by at least afirst language model and a second language model. The first languagemodel and the second language model can be selected according to auser-specific preference of language models for interpreting spokenutterances from the user. The user-specific preference of languagemodels can be explicitly selected by the user, and/or determined orinferred over time with direct or explicit selection by the user, as theuser interacts with the automated assistant and/or one or more otherapplications. The user-specific preference can be adapted over time forthe user, and can therefore be amended to identify more or lesslanguages, according to how preferences of the user change over time.For instance, the user-specific preference can initially identify adefault language for interacting with the user. However, over time, theuser-specific preference can be modified based on whether the usercommunicates in the default language or another language with one ormore different computing devices and/or applications. The other languagecan then be identified, at the user-specific preference, by theautomated assistant when responding to spoken utterances from the user,subsequent to the user-specific preference being modified.

The method 400 can also include an operation 406 of determining a firstscore that characterizes a probability that the spoken utterance wasprovided in a first language and a second score that characterizesanother probability that the spoken utterance was provided in a secondlanguage. Specifically, the scores can be based on data thatcharacterizes previous user activity, which can include the useraccessing content provided to the user in the first language and/or thesecond language. Such data can be used by the automated assistant and/orany other application or module for ranking and/or scoring one or morecandidate languages for use when responding to a spoken utterance fromthe user, and/or amending the user-specific preference. Additionally, oralternatively, the data can be used for ranking and/or scoring one ormore candidate languages for use when converting audio data to text thatwill provided to an input field or text field being presented at aninterface of a computing device. In some implementations, the data canindicate that the user has provided an input to an application in asecond language, and caused content to be provided by the application inthe first language and the second language. Additionally, oralternatively, the data can also indicate that the user selectedparticular content that includes the first language and/or otherwiseembodies the first language.

The method 400 can further include an operation 408 of determining,based on a user user-specific language profile, that the user hasintentionally accessed digital content provided in the first language.In some implementations, the user-specific language profile can includean arrangement of scores in a table that identifies multiple differentcandidate languages. Therefore, a language that is prioritized overother languages in the table can be selected for use when respondingand/or processing an input from the user. In some implementations, eachscore can characterize a likelihood that a corresponding language willbe perceived by the user as the correct language in which to interpretand/or respond to the user. In some implementations, one or more scorescan be used to select a language that is otherwise not identified by thetable or not associated with a language model that has previously notbeen used to process inputs from the user, or outputs for the user.

The method 400 can also include an operation 410 of determining, basedon the user accessing the digital content, another first score toreflect an increase in the probability that the spoken utterance wasprovided in the first language. In other words, although scores havebeen generated based on user-specific preferences, subsequent analysiscan be performed in order to further develop the scores according to theactivities and/or inferred preferences of the user.

The method 400 can further include an operation 412 of causing, based onthe other first score and the second score, additional audio data to beprocessed according to a language selected from the first language andthe second language. In some implementations, a portion of responsiveaudio data can be provided to the computing device in order to reducelatency that might otherwise be exhibited by waiting for the full audiodata corresponding to the full responsive output to be generated.Therefore, each portion of the responsive audio data can be sent at atime from a remote server to the computing device. The portions can thenbe used by the automated assistant to audibly provide the responsiveoutput to the user via the computing device. In some implementations,textual data can be generated at the remote server using the selectedlanguage model and provided to a backend service that incorporates thetextual data into an input field of an application being used by theuser of the computing device. In some implementations, when the firstlanguage is determined to be the selected language for interpretingand/or responding to the spoken utterance from the user, the computingdevice can query the remote server to determine whether the remoteserver includes a language model for the first language. If the remoteserver does not include the corresponding language model, the remoteserver and/or the computing device can redirect the automated assistantto a different remote server that includes the language model.

FIG. 5 illustrates a method 500 for processing audio data according to aspeech recognition model that is selected based on contents of a userprofile. The method 500 can be performed by one or more computingdevices or applications, and/or any other apparatus or module capable ofprocessing a user input. The method 500 can include an operation 502 ofprocessing audio data using one or more acoustic models to monitor foran occurrence of an invocation phrase configured to invoke an automatedassistant. The audio data can be generated based on an audible inputthat is received at a client device that includes an automated assistantinterface for interacting with the automated assistant. The automatedassistant interface can be, for example, an audio subsystem of theclient device and can therefore include one or more of a microphone, aspeaker, and/or any other apparatus for transmitting audio related data.

In some implementations, the client device can store one or moreacoustic models, and/or access one or more acoustic models over anetwork, such as the internet. The one or more acoustic models caninclude a first acoustic model, such as an invocation phrase acousticmodel, for identifying the invocation phrase embodied in the audio data.The invocation phrase can identify the device, the automated assistant,and/or any other feature that can be associated with the automatedassistant (e.g., “Assistant”). In some implementations, the firstacoustic model can be agnostic to the language in which the invocationphrase is provided, but, rather the first acoustic model can process theaudio data to identify pitch, tone, accents, intonation, and/or anyother feature of speech that can be used to identify a phrase and/or auser. The first acoustic model can be arranged as an always activeacoustic model in order that the automated assistant can be triggered atany time when the invocation phrase is received at the automatedassistant interface. Simultaneously, in some implementations, one ormore other acoustic models can be active, at least according to a userprofile that is stored at the client device or otherwise accessible tothe automated assisting.

The method 500 can further include an operation 504 of detecting, basedon the processing of the audio data, the occurrence of the invocationphrase in a portion of the audio data. For example, when the invocationphrase is, “Assistant,” the first acoustic model can receive the portionof audio data and output either a semantic representation of the word“assistant,” or text corresponding to the word “assistant.” Theautomated assistant can then compare the semantic representation, or thetext, to one or more stored representations of the invocation phrase inorder to determine whether the user is intending to invoke the automatedassistant.

The method 500 can also include an operation 506 of determining that theportion of the audio data that includes the invocation phrasecorresponds to a user profile accessible to the automated assistant.This determination can be performed based on the processing of the audiodata using the one or more acoustic models, or other processing usingone or more other acoustic models. For example, in some implementations,the first acoustic model can receive the portion of audio data as theinput and provide an output that indicates that the user is intending toinvoke the automated assistant. The first acoustic model can alsoprovide an output that identifies the user that provided the audio inputcorresponding to the audio data. Specifically, the first acoustic modelcan operate to distinguish how different users say a particularinvocation phrase. As an example, a first user may provide an invocationphrase at a pitch that is higher than a second user provides the sameinvocation phrase, therefore the first acoustic model can distinguishthe first user from the second user by analyzing a level of pitchexhibited by the audio data. In some implementations, the automatedassistant can access a table of voice signatures that identifies voicecharacteristics for each user that accesses the automated assistant. Inthis way, the automated assistant can use one or more acoustic models tocharacterize voice characteristics and identify a user profile of a userbased on a degree of correspondence between an input from the user andthe voice characteristics stored in association with the user profile inthe table of voice signatures.

The user profile can identify one or more languages corresponding to oneor more speech recognition models for processing natural language inputsfrom the user whose language preferences are identified by the userprofile. The user profile can identify contexts in which the userprefers particular languages, probabilities or confidence scoresassociated with the particular languages, availability of speechrecognition models corresponding to the languages, and/or any other datathat can be used to identify language preferences of the user. Thecontexts identified by the user profile can include applications,locations, devices, contacts, times, and/or any other data that cancharacterize a context in which a user communicates using a particularlanguage. In this way, a current context of the user that provided theaudio input corresponding to the audio data can be compared tocontextual data identified in the user profile of the user in order toidentify a language that the user prefers to communicate given thecurrent context. For example, if the user is at home and the userprofile indicates that the user prefers to use Spanish when at home, theautomated assistant can select Spanish as a preferred of language whenthe user invokes the automated assistant at home.

The method 500 can also include an operation 508 of identifying alanguage assigned to the user profile. The user profile can includemultiple different languages that are assigned to the user profile, andthe language identified at operation 508 can depend on a confidencescore associated with the language in the user profile, contextual datacorresponding to the language in the user profile, and/or any other dataidentified in the user profile suitable for processing when identifyingthe language. In some implementations, identifying the language assignedto the user profile can include flagging the language as the activelanguage for the automated assistant at the time the user provides theinvocation phrase or subsequently thereafter.

The method 500 can further include an operation 510 of selecting aspeech recognition model for the language based on identifying thelanguage as assigned to the user profile. The speech recognition modelcan be selected from one or more candidate speech recognition models. Inthis way, the automated assistant can switch between speech recognitionmodels in order to ensure that the automated assistant can interact withthe user despite the user communicating in multiple different languages.In some implementations, the user profile can provide a correspondencebetween a language identified in the user profile and a speechrecognition model. In this way, when the automated assistant identifiesthe language preferred by the user, the automated assistant will be ableto also identify the speech recognition model corresponding to thepreferred language.

The method 500 can also include an operation 512 of using the selectedspeech recognition model to process a subsequent portion of the audiodata that follows the portion of audio data. In other words, a clientdevice that includes the automated assistant at which the audio input isreceived, can store a snippet of audio data that embodies the invocationphrase as well as one or more other commands provided by the user. Theautomated assistant can cause a portion of the audio data to beprocessed by the first acoustic model to determine whether the userprovided the invocation phrase. Any portion of the audio data that doesnot embody the invocation phrase can be processed by the speechrecognition model. In this way, the user does not need to repeat anycommands after this speech recognition model has been selected, butrather can rely on the automated assistant to adapt to variations inlanguage that can occur as the user is interacting with the automatedassistant.

The method 500 can optionally include an operation 514 of causing theautomated assistant to provide responsive content that is determined orgenerated based on the processing of the subsequent portion of the audiodata using the selected speech recognition model. The responsive contentcan be any output capable of being provided by a computing device. Forexample, the responsive content can be a natural language outputgenerated by a speech generation model corresponding to the languageidentified at operation 508. Therefore, the natural language output canbe an audio output, a video output, and/or any other output that can becharacterized as a natural language output. When the subsequent portionof audio data includes a query from the user, the responsive content canbe an answer to the query that is provided in the language identified atoperation 508.

FIG. 6 illustrates a method 600 for scheduling a language model to bepre-emptively activated according to contextual data accessible to anautomated assistant. The method can be performed by one or morecomputing devices, applications, and/or any other apparatus or modulecapable of interacting with an automated assistant. The method 600 caninclude an operation 602 of determining that an event is to occur duringan upcoming period of time. The event can be described by a storedcalendar event or other data that characterizes the event and sets forththe period of time at which the event will occur. An automated assistantcan determine that the event is going to occur at the upcoming period oftime by accessing account data associated with a particular user orgroup of users. Alternatively, the automated assistant can be at leastpartially hosted at a device that includes a memory that stores datacorresponding to multiple different events that are associated withmultiple different users. In some implementations, the event can beidentified over a network, such as the internet, and can be associatedwith publicly available data that is associated with one or moredifferent users. For example, the event can be associated with anupcoming public festival or public holiday that can be associated with aparticular language.

The method 600 can further include an operation 604 of determiningwhether the event is associated with a particular user. Thedetermination can be based on a comparison between event-related dataand user-related data that are accessible to the automated assistant.For example, an event can be associated with the user when the event isdescribed by a calendar entry and includes the user as an attendee.Furthermore, an event can be associated with a particular user when anaccount associated with the user includes information that is associatedwith the event. Moreover, the event can be associated with a particularuser when historical interaction data between the user and an automatedassistant identifies the event, or otherwise describes informationassociated with the event. For example, if a particular user hasrequested that the automated assistant order tickets to a particulardestination that is also the location of the event, the event can beassociated with the particular user.

When the event is not associated with a particular user, the method 600can refer back to operation 602 of monitoring whether an upcoming eventis to occur. Otherwise, when the event is associated with the particularuser, the method 600 can proceed to operation 606 of selecting a userprofile corresponding to the particular user. The user profile can beidentified in an index or table that lists one or more user profiles andprovides a correspondence between the user profiles and one or moredifferent users. For example, a computing device that at least partiallyhosts an automated assistant can store one or more user profiles, whichcan designate particular language models to use for communicating withor interpreting inputs from a particular user. Therefore, because theevent is associated with a particular user, a user profile can beselected in order to identify a suitable language model to activatepre-emptively for the upcoming event.

The method 600 can also include an operation 608 of determining whetherthe event is associated with a context identified by the selected userprofile. If the event is not associated with a context identified by theuser profile, the method 600 can proceed to an operation 610 ofselecting a default language model of language models identified in theuser profile. For example, the selected user profile can identifycontexts such as a location, a contact or person associated with theevent, an application or a device associated with the event, a time forthe event, and/or any other information that can identify a context inwhich an event can occur.

When the event is associated with a context identified by the userprofile, the method 400 can proceed to an operation 612 of determiningone or more scores for one or more language models identified by theuser profile based on the context. For example, the event can beassociated with a location, and the user profile can identify: a firstscore for a first language model and the location, and a second scorefor a second language model and the location. If the first score isgreater than the second score, the first language model can be selectedfor pre-emptively activating for the upcoming event.

When the scores are determined for the language models identified by theuser profile, then the method 600 can proceed to an operation 604 ofselecting a language model based on the determined score. In someimplementations, when two or more scores are the same or substantiallysimilar, additional context can be considered in order to furtherdistinguish the scores and select a suitable language model. Forexample, if the event is associated with contacts that the user haspreviously communicated with using a particular language, the userprofile can identify one or more of the contacts in order to determineadditional scores to consider. The additional scores can be combinedwith the previously considered scores, and a language model associatedwith the highest score can be selected for pre-emptively activating.

When a particular language model has been selected user profile, themethod 600 can proceed to an operation 616 of preemptively configuringthe selected language model to be active for the event that is duringthe upcoming period of time. In this way, when the event begins, or theperiod of time is the present time, the selected language model will beactive. This can be useful when the event is located in area withlimited network connectivity, as the language model would have alreadybeen downloaded to the device of the user before the event.

FIG. 7 is a block diagram of an example computer system 710. Computersystem 710 typically includes at least one processor 714 whichcommunicates with a number of peripheral devices via bus subsystem 712.These peripheral devices may include a storage subsystem 724, including,for example, a memory 725 and a file storage subsystem 726, userinterface output devices 720, user interface input devices 722, and anetwork interface subsystem 716. The input and output devices allow userinteraction with computer system 710. Network interface subsystem 716provides an interface to outside networks and is coupled tocorresponding interface devices in other computer systems.

User interface input devices 722 may include a keyboard, pointingdevices such as a mouse, trackball, touchpad, or graphics tablet, ascanner, a touchscreen incorporated into the display, audio inputdevices such as voice recognition systems, microphones, and/or othertypes of input devices. In general, use of the term “input device” isintended to include all possible types of devices and ways to inputinformation into computer system 710 or onto a communication network.

User interface output devices 720 may include a display subsystem, aprinter, a fax machine, or non-visual displays such as audio outputdevices. The display subsystem may include a cathode ray tube (CRT), aflat-panel device such as a liquid crystal display (LCD), a projectiondevice, or some other mechanism for creating a visible image. Thedisplay subsystem may also provide non-visual display such as via audiooutput devices. In general, use of the term “output device” is intendedto include all possible types of devices and ways to output informationfrom computer system 710 to the user or to another machine or computersystem.

Storage subsystem 724 stores programming and data constructs thatprovide the functionality of some or all of the modules describedherein. For example, the storage subsystem 724 may include the logic toperform selected aspects of method 400, 500, 600, and/or to implementone or more of server device 102, client computing device 118, portablecomputing device 132, assistant device 212, assistant device 322,automated assistant 314, application 308, computing device 306, and/orany other device or operation discussed herein.

These software modules are generally executed by processor 714 alone orin combination with other processors. Memory 725 used in the storagesubsystem 724 can include a number of memories including a main randomaccess memory (RAM) 730 for storage of instructions and data duringprogram execution and a read only memory (ROM) 732 in which fixedinstructions are stored. A file storage subsystem 726 can providepersistent storage for program and data files, and may include a harddisk drive, a floppy disk drive along with associated removable media, aCD-ROM drive, an optical drive, or removable media cartridges. Themodules implementing the functionality of certain implementations may bestored by file storage subsystem 726 in the storage subsystem 724, or inother machines accessible by the processor(s) 714.

Bus subsystem 712 provides a mechanism for letting the variouscomponents and subsystems of computer system 710 communicate with eachother as intended. Although bus subsystem 712 is shown schematically asa single bus, alternative implementations of the bus subsystem may usemultiple busses.

Computer system 710 can be of varying types including a workstation,server, computing cluster, blade server, server farm, or any other dataprocessing system or computing device. Due to the ever-changing natureof computers and networks, the description of computer system 710depicted in FIG. 7 is intended only as a specific example for purposesof illustrating some implementations. Many other configurations ofcomputer system 710 are possible having more or fewer components thanthe computer system depicted in FIG. 7 .

In situations in which the systems described herein collect personalinformation about users (or as often referred to herein,“participants”), or may make use of personal information, the users maybe provided with an opportunity to control whether programs or featurescollect user information (e.g., information about a user's socialnetwork, social actions or activities, profession, a user's preferences,or a user's current geographic location), or to control whether and/orhow to receive content from the content server that may be more relevantto the user. Also, certain data may be treated in one or more waysbefore it is stored or used, so that personal identifiable informationis removed. For example, a user's identity may be treated so that nopersonal identifiable information can be determined for the user, or auser's geographic location may be generalized where geographic locationinformation is obtained (such as to a city, ZIP code, or state level),so that a particular geographic location of a user cannot be determined.Thus, the user may have control over how information is collected aboutthe user and/or used.

While several implementations have been described and illustratedherein, a variety of other means and/or structures for performing thefunction and/or obtaining the results and/or one or more of theadvantages described herein may be utilized, and each of such variationsand/or modifications is deemed to be within the scope of theimplementations described herein. More generally, all parameters,dimensions, materials, and configurations described herein are meant tobe exemplary and that the actual parameters, dimensions, materials,and/or configurations will depend upon the specific application orapplications for which the teachings is/are used. Those skilled in theart will recognize, or be able to ascertain using no more than routineexperimentation, many equivalents to the specific implementationsdescribed herein. It is, therefore, to be understood that the foregoingimplementations are presented by way of example only and that, withinthe scope of the appended claims and equivalents thereto,implementations may be practiced otherwise than as specificallydescribed and claimed. Implementations of the present disclosure aredirected to each individual feature, system, article, material, kit,and/or method described herein. In addition, any combination of two ormore such features, systems, articles, materials, kits, and/or methods,if such features, systems, articles, materials, kits, and/or methods arenot mutually inconsistent, is included within the scope of the presentdisclosure.

We claim:
 1. A method implemented by one or more processors, the methodcomprising: determining that a user has interacted with one or moreapplications when the one or more applications were providing naturallanguage content in a first language, wherein the first language isdifferent from a second language that is a user-specific speechprocessing language defined in user-specific language profile thatcorresponds to the user; causing, based on determining that the user hasinteracted with the one or more applications, the user-specific languageprofile to be modified to also reference the first language; receiving,subsequent to the user-specific language profile being modified to alsoreference the first language, audio data corresponding to a spokenutterance received at an automated assistant interface of a computingdevice; responsive to receiving the audio data corresponding to thefirst spoken utterance, and based on the first language being includedin the user-specific language profile and the second language being theuser-specific speech processing language in the user-specific languageprofile, determining: a first score that characterizes a probabilitythat the spoken utterance was provided by the user in the firstlanguage, and a second score that characterizes another probability thatthe spoken utterance was provided by the user in the second language;selecting, based on at least the first score and the second score, thefirst language over the second language; and in response to selectingthe first language, using first language speech recognition results,from performing speech recognition for the first language based on theaudio data, in generating a response to the spoken utterance.
 2. Themethod of claim 1, wherein determining the first score is based onoutput that is generated in performing speech recognition for the firstlanguage based on the audio data.
 3. The method of claim 2, whereindetermining the second score is based on output that is generated inperforming speech recognition for the second language based on the audiodata.
 4. The method of claim 3, wherein determining the first score isfurther based on a first probability metric that is assigned, in theuser-specific language profile, to the first language.
 5. The method ofclaim 4, wherein determining the first score is further based on asecond probability metric that is assigned, in the user-specificlanguage profile, to the second language.
 6. The method of claim 1,wherein determining the first score is based on a first probabilitymetric that is assigned, in the user-specific language profile, to thefirst language.
 7. The method of claim 6, further comprising utilizingthe first probability, in determining the first score, in response tothe first probability being associated with a location and the computingdevice having the location when the audio data, corresponding to thespoken utterance, is received.
 8. The method of claim 6, whereindetermining the first score is further based on a second probabilitymetric that is assigned, in the user-specific language profile, to thesecond language.
 9. The method of claim 1, further comprising: causingthe response to be rendered at the computing device, wherein theresponse is provided in the first language in response to selecting thefirst language.
 10. The method of claim 1, wherein the one or moreapplications include an email application and wherein determining thatthe user has interacted with the one or more application when the one ormore application were providing natural language content in the firstlanguage comprises determining that the email application includesemails written in the first language.
 11. A system comprising: one ormore processors; and memory configured to store instructions that, whenexecuted by the one or more processors cause the one or more processorsto perform operations that include: determining that a user hasinteracted with natural language content that is in a first language,wherein the first language is different from a second language that is auser-specific speech processing language defined in user-specificlanguage profile that corresponds to the user; causing, based ondetermining that the user has interacted with the natural languagecontent in the first language, the user-specific language profile to bemodified to also reference the first language; receiving, subsequent tothe user-specific language profile being modified to also reference thefirst language, audio data corresponding to a spoken utterance receivedat an automated assistant interface of a computing device; responsive toreceiving the audio data corresponding to the first spoken utterance,and based on the first language being included in the user-specificlanguage profile and the second language being the user-specific speechprocessing language in the user-specific language profile, determining:a first score that characterizes a probability that the spoken utterancewas provided by the user in the first language, and a second score thatcharacterizes another probability that the spoken utterance was providedby the user in the second language; selecting, based on at least thefirst score and the second score, the first language over the secondlanguage; and in response to selecting the first language, using firstlanguage speech recognition results, from performing speech recognitionfor the first language based on the audio data, in generating a responseto the spoken utterance.
 12. The system of claim 11, wherein determiningthe first score is based on output that is generated in performingspeech recognition for the first language based on the audio data. 13.The system of claim 12, wherein determining the second score is based onoutput that is generated in performing speech recognition for the secondlanguage based on the audio data.
 14. The system of claim 13, whereindetermining the first score is further based on a first probabilitymetric that is assigned, in the user-specific language profile, to thefirst language.
 15. The system of claim 14, wherein determining thefirst score is further based on a second probability metric that isassigned, in the user-specific language profile, to the second language.16. The system of claim 11, wherein determining the first score is basedon a first probability metric that is assigned, in the user-specificlanguage profile, to the first language.
 17. The system of claim 16,wherein the operations further include utilizing the first probability,in determining the first score, in response to the first probabilitybeing associated with a location and the computing device having thelocation when the audio data, corresponding to the spoken utterance, isreceived.
 18. The system of claim 16, wherein determining the firstscore is further based on a second probability metric that is assigned,in the user-specific language profile, to the second language.
 19. Thesystem of claim 11, wherein the operations further include: causing theresponse to be rendered at the computing device, wherein the response isprovided in the first language in response to selecting the firstlanguage.
 20. The system of claim 11, wherein the one or moreapplications include an email application and wherein determining thatthe user has interacted with the one or more application when the one ormore application were providing natural language content in the firstlanguage comprises determining that the email application includesemails written in the first language.